import os
import stat

# 查看目录或文件
print(os.getcwd()) # 查看当前目录
print(os.stat("C:\\Users\\Administrator\\Desktop\\temp")) # 获取指定路径的信息
print(os.path.abspath('zen.txt')) # 获取当前路径的绝对路径
print(os.path.getsize('zen.txt'))
print(os.path.getctime('zen.txt')) # 获取创建时间
print(os.path.getatime('zen.txt')) # 获取访问时间
print(os.path.getmtime('zen.txt')) # 获取修改时间

# 创建目录和文件
os.mkdir('test1.txt') # 创建一个文件夹，如果存在，则报错。注意：创建的是文件夹！
os.mkdir('test1/test2')
os.makedirs('python1/python2') # 递归创建目录，如果存在，则报错。

# open函数创建文件
with open('test.py','w') as f :
    pass
# 判断目录是否存在
if os.path.exists('test_test.py'):
    print('文件已存在')
else:
    print('文件不存在')

# 删除目录和文件
os.rmdir('python1/python2') # 只能删除空文件
os.removedirs('python1/python2')  # 可以递归删除,只能删除空文件，如果上级文件夹下有文件，则无法删除

os.remove('python1/test.py') # 删除文件

# 修改目录和文件
os.mkdir('log.txt',mode=0o755)
print(oct(os.stat('log.txt').st_mode))
print(os.access('log.txt',os.X_OK))# 判断文件是否有权限
os.chmod('log.txt',0o777) # stat.S_I  # 用于改变文件的权限
print(oct(os.stat('log.txt').st_mode))
print(os.stat('log.txt'))
os.chown('log.txt',uid=2000,gid=2000)
os.rename('log','python1/log')
print(os.getcwd())
os.chdir('python1/log')
print(os.getcwd())

# 判断是目录或文件
print(os.path.isfile('python1/log'))
print(os.path.isdir('python1/log'))
if os.path.isfile('python1/log'):
    os.remove('python1/log')
elif os.path.isdir('python1/log'):
    os.rmdir('python1/log')
else:
    print('既不是文件也不是目录')

# 合并和分割目录
path = os.getcwd()
filename = 'log.txt'
file_path = '/'.join([path,filename]) # 将filename文件和path拼接起来
file_path = os.path.join(path,filename)  # /images/abc.png
print(file_path)
print(os.sep)

print(os.path.split(file_path)) #  /file test.log
print(os.path.splitext(file_path)) # /file/test  .log

# 遍历子目录
path = os.getcwd()
# print(os.listdir('/Users/andy/PycharmProjects/StudyPython/'))
walk_obj = os.walk(path)
for num,item in enumerate(walk_obj):
    print(f'第{num+1}层:{item}')